home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.3 (Developer)…68k, x86, SPARC, PA-RISC] / NeXTSTEP 3.3 Dev Intel.iso / NextDeveloper / Headers / indexing / IXAttributeQuery.h < prev    next >
Text File  |  1994-04-13  |  1KB  |  47 lines

  1. /*
  2. IXAttributeQuery.h
  3. Copyright 1991, NeXT Computer, Inc.
  4. */
  5.  
  6. #import    <objc/Object.h>
  7. #import    <objc/hashtable.h>
  8.  
  9. #import    "protocols.h"
  10.  
  11. @class IXAttributeParser;
  12. @class IXPostingList;
  13.  
  14. // This class performs query processing based on the NeXT IndexingKit query 
  15. // language, documented on- line and in print.  Classes that can be queried 
  16. // include IXAttributeParser, IXFileFinder, IXFileRecord, and IXRecordManager.
  17.  
  18. @interface IXAttributeQuery: Object
  19. {
  20.     NXZone        *_queryZone;
  21.     id            _queryBinder;
  22.     BOOL        _freeBinder;
  23.     NXHashTable        *_objectTable;
  24.     NXHashTable        *_opaqueTable;
  25.     NXHashTable        *_namingTable;
  26.     struct TermRecord    *_queryParse;
  27.     struct TermRecord    *_queryStack;
  28.     id            attributeParser;
  29.     id            queryContext;
  30.     unsigned char    *queryString;
  31. }
  32.  
  33. // the parser processes text enclosed by the parse operator.
  34. - initQueryString:(const char *)string 
  35.     andAttributeParser:(IXAttributeParser *)aParser;
  36.  
  37. // evaluates the query string against an object that has attribute bindings.
  38. // first, we request the attribute binder.  if nil, we request the bindings.
  39. - (IXPostingList *)evaluateFor:(id <IXAttributeBinding>)anObject;
  40.  
  41. - (char *)attributeNames; // a new line separated list; caller must free.
  42. - (IXAttributeParser *)attributeParser; // the one used by the parse operator.
  43. - (const char *)queryString; // returns the query string used to initialize.
  44.  
  45. @end
  46.  
  47.